# '''
# 作业：登录注册的案例
# main函数要有，用户自己选择要做的功能，根据选择调用不同的函数
# 用户注册的信息需要使用一个文件存储，登录需要判断用户是否存在，密码是否正确
# 注册的时候，需要发送邮件
# '''
# import random
# from asyncore import write
#
#
# def send_email(msg_to, send_info):
#     import smtplib
#     from email.mime.text import MIMEText
#     from email.header import Header
#     msg_from = '1114016712@qq.com'  # 发送方邮箱
#     passwd = 'uavptejquxplhijc'  # 填入发送方邮箱的授权码(填入自己的授权码，相当于邮箱密码)
#     # msg_to = '1114016712@qq.com' #收件方邮箱
#     # msg_to = ['','','']
#     subject = "欢迎进入数加中心"  # 主题
#     # content = '欢迎来到数加学院' #内容
#     # 生成一个MIMEText对象（还有一些其它参数）
#     msg = MIMEText(send_info)
#     # 放入邮件主题
#     msg['Subject'] = subject
#     # 也可以这样传参
#     # msg['Subject'] = Header(subject, 'utf-8')
#     # 放入发件人
#     msg['From'] = msg_from
#     # 放入收件人
#     # 通过ssl方式发送，服务器地址，端口
#     s = smtplib.SMTP_SSL("smtp.qq.com", 465)
#     # 登录到邮箱
#     s.login(msg_from, passwd)
#     # 发送邮件：发送方，收件方，要发送的消息
#     s.sendmail(msg_from, msg_to, msg.as_string())
#     print('成功')
#
#
#
# def rand_yzm():  #随机生成6位数验证码
#     import os
#     return random.randint(100000,999999)
#
#
#
# def register():  #注册新用户函数
#     print('-'*50)
#     print('欢迎注册数加中心'.center(50,'-'))
#     name = input('请输入需要注册的用户名：')
#     all_user_dict = get_all_users()
#     #判断用户是否存在，如果存在直接结束函数
#     if name in all_user_dict:
#         print('该用户名已经被使用')
#         return  None
#     #如果用户不存在，表示是新用户，设置用户的密码、邮箱、存入文本中
#     pwd = input('请设置您的密码：')
#     user_email = input('请输入您的邮箱：')
#     #发送邮件
#     yzm = str(rand_yzm())  #调用函数，随机生成一个验证码,转为str类型
#     send_email(user_email,yzm)#调用发送邮箱验证函数，输入参数为：邮箱号，随机生成的验证码
#     user_yzm = input('请输入您的验证码：')
#     if user_yzm == yzm:
#         with open('data/user_info','a',encoding='UTF-8') as f:
#             f.write(f'\n{name},{pwd},{user_email}')
#         import time #模拟注册所需要的时间
#         time.sleep(3)
#         print('用户已经注册成功')
#
#
#
# def login():
#     print('-' * 50)
#     print('欢迎注册数加中心'.center(50, '-'))
#     name = input('请输入需要注册的用户名：')
#     all_user_dict = get_all_users()
#     # 判断用户是否存在，如果存在直接结束函数
#     if name not in all_user_dict:
#         print('该用户名不存在')
#         return None
#     pwd = input('请输入您的密码：')
#     user_email = input('请输入您的邮箱：')
#     # 发送邮件
#     yzm = str(rand_yzm())  # 调用函数，随机生成一个验证码,转为str类型
#     send_email(user_email, yzm)  # 调用发送邮箱验证函数，输入参数为：邮箱号，随机生成的验证码
#     user_yzm = input('请输入您的验证码：')
#     if user_yzm == yzm:
#         user_pwd = all_user_dict[name]['pwd']
#         if pwd != user_pwd:
#             print('您输入的密码错误')
#             return None
#         import time  # 模拟注册所需要的时间
#         time.sleep(3)
#         print('用户已经登录成功')
#
#
#
# def cancle():
#     print('-' * 50)
#     print('正处于注销页面 '.center(50, '-'))
#     name = input('请输入您需要注销的账户名：')
#     all_user_dict = get_all_users()
#     # 判断用户是否存在，如果存在直接结束函数
#     if name not in all_user_dict:
#         print('该用户名不存在')
#         return None
#     all_user_dict.pop(name)  #从字典中根据键移除
#     f = open('data/user_info','w',encoding='UTF-8')
#     users = list(all_user_dict.items())
#     n = 1
#     for user in users:
#         name = user[0]
#         d1 = user[1]
#         pwd = d1['pwd']
#         user_email = d1['user_email']
#         if n == len(users):
#             f.write(f'{name},{pwd},{user_email}')
#         else:
#             f.write(f'{name},{pwd},{user_email}\n')
#         n = n+1
#     print('已注销成功')
#
#
#
# def get_all_users():  #用来获取所有用户的函数
#     #创建一个字段，将来函数结束要返回
#     all_user_dict = {}
#     f = open('data/user_info','r',encoding='UTF-8')
#     line_list = f.readlines() #读取每一行，组成一个列表
#     for line in line_list: #遍历列表中的数据
#         line.strip()    #去除每一行的换行符
#         #黄沪生,123,1114016712@qq.com
#         #{'黄沪生':{'pwd':'123','user_email':'1114016712@qq.com'},}
#         user_info = line.split(',')  #通过逗号将信息分割开组成一个列表
#         name = user_info[0] # 通过列表序号索引获取姓名
#         pwd = user_info[1] # 通过列表序号索引获取密码
#         user_email = user_info[2] # 通过列表序号索引获取邮箱
#         user_dict = {'pwd':pwd,'user_email':user_email} #将密码和邮箱单独组成一个字典
#         all_user_dict[name] = user_dict #通过字典中的键值对，将name和已经组合在一起的pwd、user_email组成键值对
#
#     return all_user_dict #将所有用户封装的字典进行返回
#
#
#
# def init():
#     print('欢迎进入数加中心'.center(50,'-'))
#     print('1：注册')
#     print('2：登录')
#     print('3：注销')
#     print('-' *  50)
#     choose1 = input('请输入您的选择：')
#     if choose1 == '1':
#         register()
#     elif choose1 == '2':
#         login()
#     elif choose1 == '3':
#         cancle()
#     else:
#         print('没有您输入的选项')
#
#
#
# if __name__ == '__main__':
#     init()
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
import os
# # data/user_info
# b =os.path.exists('E:\\shujia\\Projects\\PyCharmProjects\\bigdata33\\base\\text\\data\\user_info')
# print(b) # True

s1 = os.path.join('data','user_info')
print(s1,type(s1))

f = open(s1,'r',encoding='UTF-8')
text1 = f.read()
print(text1)

#
#
#
#
#
#
